Connectivity between disparate devices within a computer system or between modules in an integrated circuit or ASIC is often accomplished through at least one central switch that is connected to devices on different busses throughout the system. A central switch allows transactions to be routed internally, so that each device is able to access other modules connected to the central switch, without requiring additional ports or unnecessary logic specific to the target resource or target device. For example, a memory control module in a system controller having a central switch may be accessed through this central switch from the interface for the system processor, from a number of busses within the computer system, or perhaps from other devices or modules within the system controller. In order to communicate with this memory control module, other devices connected to the switch only need to communicate with the central switch, which translates requests from the form appropriate for one device to a form suitable for another.
When a request is issued by one device to another, the device that is the source of the request includes two request two tags within the request. These two tags identify the source device for the request and the destination device for the request. When a device issues a request to another device, the source or requesting device issues a request to the central switch, identifying itself as the source, and the target device as the destination. The switch then analyzes the tags, performs any necessary translation, and then communicates the request to the target or destination device as identified by the destination tag. Thereafter, the requested operation is performed.
Often the conventional procedure of issuing device requests in such an environment works efficiently. However, in some situations, inefficiencies or redundancies result when the requesting device identifies itself to the switch as the source. These inefficiencies result in increased loads on the central switch, and also in unnecessary demands on some of the devices or other resources within the system. Thus, there exists a need for an efficient system and method for more efficiently issuing requests between devices in a computer system, while also maintaining compatibility with applicable bus standards or other standards, and while not unnecessarily increasing the complexity of devices within the system.